acp <- PCA(df_bio, quali.sup = sup)
Avis : Missing values are imputed by the mean of the variable: you should use the imputePCA function of the missMDA package

acp$eig
          eigenvalue percentage of variance cumulative percentage of variance
comp 1  1.197770e+01           4.436185e+01                          44.36185
comp 2  4.871503e+00           1.804260e+01                          62.40445
comp 3  3.897061e+00           1.443356e+01                          76.83801
comp 4  1.689933e+00           6.259012e+00                          83.09702
comp 5  1.174826e+00           4.351206e+00                          87.44823
comp 6  7.555345e-01           2.798276e+00                          90.24651
comp 7  6.222726e-01           2.304713e+00                          92.55122
comp 8  4.422633e-01           1.638012e+00                          94.18923
comp 9  4.024809e-01           1.490670e+00                          95.67990
comp 10 3.266903e-01           1.209964e+00                          96.88987
comp 11 2.439625e-01           9.035647e-01                          97.79343
comp 12 2.002945e-01           7.418313e-01                          98.53526
comp 13 1.510769e-01           5.595440e-01                          99.09481
comp 14 1.304115e-01           4.830057e-01                          99.57781
comp 15 3.313180e-02           1.227104e-01                          99.70052
comp 16 2.351261e-02           8.708374e-02                          99.78761
comp 17 1.789537e-02           6.627915e-02                          99.85389
comp 18 1.472727e-02           5.454546e-02                          99.90843
comp 19 9.240277e-03           3.422325e-02                          99.94265
comp 20 5.753537e-03           2.130939e-02                          99.96396
comp 21 3.934282e-03           1.457141e-02                          99.97853
comp 22 2.757545e-03           1.021313e-02                          99.98875
comp 23 1.662601e-03           6.157781e-03                          99.99491
comp 24 1.221977e-03           4.525840e-03                          99.99943
comp 25 1.491494e-04           5.524052e-04                          99.99998
comp 26 4.291986e-06           1.589625e-05                         100.00000
comp 27 9.504899e-26           3.520333e-25                         100.00000
# Créer le modèle SVM
svm_model+ <- svm(label ~ ., data = train_data, kernel = "radial")
Error: unexpected assignment in "svm_model+ <-"
print(confusion_matrix)
                       
predictions              0  1
  -0.0898013712393877    1  0
  -0.0754312968709614    1  0
  -0.065259564119571     1  0
  -0.0609592512650275    1  0
  -0.0604699108635405    1  0
  -0.0592150499439764    1  0
  -0.0576490986679794    1  0
  -0.057429136060344     1  0
  -0.0553743682568513    1  0
  -0.0539484447689792    1  0
  -0.0522212566495053    1  0
  -0.0518158136633723    1  0
  -0.04860978711453      1  0
  -0.0482836807213789    1  0
  -0.0481979250215899    0  1
  -0.0480805581584286    1  0
  -0.0471609375121283    1  0
  -0.045781230857676     1  0
  -0.0442486305901478    3  0
  -0.0433619242329079    0  1
  -0.0431558785389085    1  0
  -0.0416861479032068    1  0
  -0.0416420792039825    1  0
  -0.040710641264174     1  0
  -0.0393715549686487    1  0
  -0.0378474157414201    1  0
  -0.0377752872843882    7  0
  -0.0367760815782397    1  0
  -0.0358957201479292    1  0
  -0.0355553469301872    1  0
  -0.0326609685077614    1  0
  -0.0323652849091392    1  0
  -0.0322040512295999    1  0
  -0.0320196227592325    1  0
  -0.0312213621639592    2  0
  -0.0309531101268934    1  0
  -0.0307206070907949    1  0
  -0.0303629385202125    1  0
  -0.0302254623161708    1  0
  -0.0302052052342789    0  1
  -0.0301893274735437    1  0
  -0.0301379759434826    1  0
  -0.030042480856517     2  0
  -0.0299240682573467    1  0
  -0.0298925314810046    1  0
  -0.0291765007883433    8  0
  -0.028902531950776     1  0
  -0.0288552589053152    3  0
  -0.0287815581096106    1  0
  -0.0287693888114424    1  0
  -0.0287356509943499    1  0
  -0.0285192213573466    1  0
  -0.0285172318549367    1  0
  -0.0284315880330413    1  0
  -0.0281536846974103    1  0
  -0.0281508561773583    1  0
  -0.0279906552821555    1  0
  -0.0279186241184222    1  0
  -0.027912681356295     1  0
  -0.0278707039095458    1  0
  -0.0278481853772453    7  0
  -0.0276963380482651    1  0
  -0.0276778055498896    1  0
  -0.0276134875349034    1  0
  -0.0276078423985116    1  0
  -0.0274992539330608    1  0
  -0.0274943137449884    1  0
  -0.0274601465798903    0  1
  -0.0274276679513105    1  0
  -0.0274034844204204    1  0
  -0.0273999405407753    1  0
  -0.0273643011108151    1  0
  -0.0272689964236585    1  0
  -0.0272575973424558    1  0
  -0.0271202656607785    1  0
  -0.0270485196858924    1  0
  -0.0270407395599842    7  0
  -0.0270345005959126    1  0
  -0.0270006615322915    1  0
  -0.0269335673047155    1  0
  -0.0269021743517091    1  0
  -0.0268935707224704    1  0
  -0.0268912184200949    1  0
  -0.0268116247005978    1  0
  -0.0267753232206452    1  0
  -0.0266727438329625    1  0
  -0.0265690936004749    1  0
  -0.0265658608982427    1  0
  -0.0265521256164948    1  0
  -0.0264047400473168    1  0
  -0.0263696553467928    1  0
  -0.0263420462390754    1  0
  -0.0263043468136969    1  0
  -0.0262339242914512    1  0
  -0.0261991628179716    1  0
  -0.0261850319122762    1  0
  -0.0261581016683259    1  0
  -0.026109973706507     1  0
  -0.0260886103020289    1  0
  -0.0260696287785703    1  0
  -0.0260545277234491    1  0
  -0.0260544878856022    1  0
  -0.0260493757775391   47  0
  -0.0260430744784365    1  0
  -0.0260396814272385    2  0
  -0.0260347519040399    1  0
  -0.0260285657348264    1  0
  -0.0260190612829823    1  0
  -0.0260146118110411    1  0
  -0.026013361195202    16  0
  -0.025993025173913     1  0
  -0.02599034093773      1  0
  -0.0259805966070694    1  0
  -0.025978230719263     1  0
  -0.0259773471478112    1  0
  -0.0259770418080671    1  0
  -0.025976986604634     1  0
  -0.0259759357435236    1  0
  -0.0259754433288793    1  0
  -0.0259727656984905   13  0
  -0.0259624825490534   20  0
  -0.0259577971578193    7  0
  -0.0259519387057838    4  0
  -0.0259460532982937    1  0
  -0.0259351298624134    1  0
  -0.0259242119514294    1  0
  -0.0259104233936364    1  0
  -0.0259101281875818    1  0
  -0.0259096327816736    1  0
  -0.0259076776266482    1  0
  -0.0259056853657299    2  0
  -0.0259028791330621    1  0
  -0.0258994563597564   14  0
  -0.0258991160115693    1  0
  -0.0258990298169441    1  0
  -0.0258975058080107    1  0
  -0.0258974996805665   10  0
  -0.0258891686528696    2  0
  -0.0258847304247938   16  0
  -0.0258767578479624    1  0
  -0.0258717140201947   11  0
  -0.0258705396433325    1  0
  -0.0258701617488549   11  0
  -0.0258567214116535    1  0
  -0.0258561673219643    2  0
  -0.0258438292012137   11  0
  -0.0258363069547183    1  0
  -0.025828164794584     1  0
  -0.0258263266149839    1  0
  -0.0258251305348019    1  0
  -0.0258149928959429    1  0
  -0.0258019194422495    1  0
  -0.0258014611722129    1  0
  -0.0257621916930197    1  0
  -0.0257460746773565    1  0
  -0.0257452704395165    1  0
  -0.0257109424937866    1  0
  -0.0256927281898117    1  0
  -0.0256884639720873    1  0
  -0.0256706886397733    1  0
  -0.0256524281808404    1  0
  -0.0256198280496523    1  0
  -0.0256160171322089    1  0
  -0.0256125639451381    1  0
  -0.0256054252374372    3  0
  -0.0255875481934198    1  0
  -0.0255555123576423    1  0
  -0.0255553455585456    1  0
  -0.0255550636902142    0  1
  -0.0255378325247357    1  0
  -0.0255375874704074    1  0
  -0.0255365994579101    1  0
  -0.0255291931306688    1  0
  -0.0255259276719927    2  0
  -0.0255190596059196    1  0
  -0.0255075523529782    1  0
  -0.0254932692944428    1  0
  -0.0254901578550107    1  0
  -0.0254563919465149    1  0
  -0.0254308683047811    1  0
  -0.0254249298733759    1  0
  -0.0254161065222413    1  0
  -0.0254002387122787    1  0
  -0.0253941950249034    1  0
  -0.0253938943402942    1  0
  -0.0253935999201363    1  0
  -0.025383266783467     1  0
  -0.025370960709139     1  0
  -0.025356244811556     1  0
  -0.025344903497864     1  0
  -0.0253442928418443   31  0
  -0.0253410055266522    6  0
  -0.0253302354726035    1  0
  -0.0252954304044102    1  0
  -0.0252799456403696    1  0
  -0.02526505604502      1  0
  -0.0252565860253033    1  0
  -0.0252546114485304    1  0
  -0.025234801787138     1  0
  -0.0252257441953021    1  0
  -0.0252124149895432    1  0
  -0.0252102533675967    1  0
  -0.0252073257346187    1  0
  -0.0252043357968677    1  0
  -0.0251973468087306    1  0
  -0.0251904261026118    1  0
  -0.0251836630293983    3  0
  -0.0251832936219677    1  0
  -0.025183135230477     0  1
  -0.0251767550856668    1  0
  -0.0251735614933444    1  0
  -0.0251700353563029    1  0
  -0.0251408388659013    1  0
  -0.0251377585287257    1  0
  -0.0251322519336528    1  0
  -0.0251308147328544    1  0
  -0.0251065598318019    1  0
  -0.0250752027627211    1  0
  -0.0250698478692654    0  2
  -0.0250557959205862    1  0
  -0.0250518965623388    1  0
  -0.0250254841274454    1  0
  -0.0250215011448421    1  0
  -0.0250147736388194    1  0
  -0.025005415116464     1  0
  -0.0250034427470708    1  0
  -0.0249457561995677    1  0
  -0.0249432046205256    0  1
  -0.0249363724683659    1  0
  -0.0249124843503829    2  0
  -0.0249111663129904    1  0
  -0.0249082362265269    1  0
  -0.0249068859773251    1  0
  -0.0248776892590998    1  0
  -0.0248706139423457    1  0
  -0.0248606356918966    1  0
  -0.0248466960255076    1  0
  -0.0248462273807402    1  0
  -0.024799347103888     1  0
  -0.0247366035820696    1  0
  -0.0246912870000421    1  0
  -0.0246750587375967    1  0
  -0.0246548728758473    1  0
  -0.024642673499134     1  0
  -0.0246243457449503    5  0
  -0.0246223354313389    1  0
  -0.0246101420902066    1  0
  -0.024601704216362     1  0
  -0.0245933621498624    0  1
  -0.0245909069499839    1  0
  -0.0245649076651423    1  0
  -0.0245621241583909    1  0
  -0.0245616196204303    1  0
  -0.0245612608001317    2  0
  -0.0245459579322945    1  0
  -0.0245326234892841    1  0
  -0.0245316960521971    1  0
  -0.0245180807054848    1  0
  -0.0245070942743672    1  0
  -0.0245014129566444    0  1
  -0.0244883617810626    1  0
  -0.0244818615735549    1  0
  -0.0243986251494175    1  0
  -0.0243453389836091    1  0
  -0.0243400922726425    1  0
  -0.0243094607087598    1  0
  -0.0242965396386654    1  0
  -0.0242845121683935    1  0
  -0.0242784408011073    1  0
  -0.024274145844226     1  0
  -0.0242291179737979    1  0
  -0.0241901219837819    1  0
  -0.0241836611225902    1  0
  -0.0241689177867773    1  0
  -0.0241659016282452    1  0
  -0.0241653527890081    1  0
  -0.0241405629724283    1  0
  -0.0241281127133302    1  0
  -0.0241200800653166    1  0
  -0.0240965481521242    1  0
  -0.0240943483999529    1  0
  -0.024092208494087     0  1
  -0.0240903355384605    1  0
  -0.0240615947167791    1  0
  -0.0240500605284937    1  0
  -0.0240406977647586    4  0
  -0.0240073885061556    1  0
  -0.0239936140927686    5  0
  -0.0239389708354543    2  0
  -0.0239212595061732    5  0
  -0.0239120982875639    1  0
  -0.02389287919712      1  0
  -0.0238693200445083    1  0
  -0.0238611767405334    1  0
  -0.0238554587401469    1  0
  -0.0238445532729207    1  0
  -0.0238381896806286    1  0
  -0.0238361027930717    1  0
  -0.0238248205660531    1  0
  -0.0238200881240259    1  0
  -0.0237837679092016    1  0
  -0.0237772245432923    1  0
  -0.0237758028531749    1  0
  -0.0237631706054199    1  0
  -0.0237624932674237    1  0
  -0.0237306835110331    1  0
  -0.0237137052725679    9  0
  -0.0237045393364904    1  0
  -0.0237036454036609    1  0
  -0.0236917712621901    1  0
  -0.0236658359841316    5  0
  -0.0236324369377344   12  0
  -0.0236295642573195    9  0
  -0.0236101599446527    1  0
  -0.0236094469817504    1  0
  -0.0235841465946578    1  0
  -0.0235618648633057    1  0
  -0.0235498690537692    1  0
  -0.0235272430430364    1  0
  -0.0235218477059047    1  0
  -0.0235193495874902    1  0
  -0.0235089480202618    1  0
  -0.0235084314723109    1  0
  -0.0235077067295257    1  0
  -0.0234990064008323    2  0
  -0.0234936668578931    1  0
  -0.0234892671713061    1  0
  -0.0234750701070288    1  0
  -0.0234544139251418    1  0
  -0.0234513718820998    1  0
  -0.0234377681070272    1  0
  -0.0234327974785561    2  0
  -0.0234263906986776    0  1
  -0.0234082083138284    1  0
  -0.0234071841035434    1  0
  -0.0233994780570093    1  0
  -0.0233817182063319    1  0
  -0.0233591395337373    1  0
  -0.0233579637373058    1  0
  -0.0233179108449399    1  0
  -0.0233079043566395    0  1
  -0.0233030180205621    1  0
  -0.0232930112966997    1  0
  -0.0232739564490964    1  0
  -0.0232652172481745    1  0
  -0.0232619912534571    1  0
  -0.0231962565532603    1  0
  -0.0231794072670453    1  0
  -0.0231753210350964    1  0
  -0.023158125369461     2  0
  -0.0231557450755922    1  0
  -0.023151816565379     1  0
  -0.0231422763406468    1  0
  -0.023141535218028     1  0
  -0.023141177269433     1  0
  -0.0231325216240656    5  0
  -0.0231286897810435    1  0
  -0.0231127835399205    1  0
  -0.0231104139744154    1  0
  -0.0230921111281935    1  0
  -0.0230842304580866    1  0
  -0.0230765250162531    1  0
  -0.0230322032316567    1  0
  -0.0230289841606651    1  0
  -0.0230123418744924    1  0
  -0.0229725556932659    1  0
  -0.022972470033658     1  0
  -0.0229565358289515   14  0
  -0.0229295481270205    1  0
  -0.0229289022211013    1  0
  -0.0229126671650679    1  0
  -0.0228945073302239    1  0
  -0.0228944572705204    1  0
  -0.0228907814036764    1  0
  -0.022874374677471     1  0
  -0.0228684303131232    1  0
  -0.0228548283256932    1  0
  -0.0228512648368756    1  0
  -0.0228488333076316    1  0
  -0.0228438817452114    1  0
  -0.0228280308028973    1  0
  -0.0228065823148522    8  0
  -0.0227804005673687    1  0
  -0.0227448097078222    5  0
  -0.0227366672993736    1  0
  -0.0226958975207393    1  0
  -0.0226751345569237    1  0
  -0.0226689786318692    1  0
  -0.0226527838135014    1  0
  -0.0226192987092835    4  0
  -0.0226166972957178    1  0
  -0.0225721025865355    1  0
  -0.022571345914807     0  1
  -0.0225594811328689    1  0
  -0.0225336172491158    1  0
  -0.0225249516185453    1  0
  -0.0224987569916699    1  0
  -0.0224516381212619    6  0
  -0.0224327401153095    1  0
  -0.0224284955760423    1  0
  -0.0223719824422142    1  0
  -0.0223456786248206    1  0
  -0.0223410128938477    1  0
  -0.0223376774137495    1  0
  -0.0223128090255858    1  0
  -0.0222995028274964    1  0
  -0.0222717733349891    1  0
  -0.0222705226465792    1  0
  -0.0222687410462844    1  0
  -0.0222569717490516    3  0
  -0.0222350084503207    1  0
  -0.0222091111430887    5  0
  -0.0221705192616112    1  0
  -0.0221658204229608    1  0
  -0.0221614291193049    1  0
  -0.0221541161285158    1  0
  -0.0221523067000785    1  0
  -0.0221389136775557    1  0
  -0.0221252295620625    1  0
  -0.0221177792661053    1  0
  -0.0221081643608516    1  0
  -0.022103820015009     1  0
  -0.021982371265367     1  0
  -0.0219780972954963    2  0
  -0.0219581649145773    6  0
  -0.0219499489689837    1  0
  -0.0218990001471043    1  0
  -0.0218948315676259    1  0
  -0.0218714132384976    1  0
  -0.0218694790472194    1  0
  -0.0218649289085404    1  0
  -0.0218387767573733    1  0
  -0.0218281026001668    1  0
  -0.0217898598632692    1  0
  -0.0217807181019498    1  0
  -0.0217621578594369    1  0
  -0.0217505855891721    1  0
  -0.0217394919405364    1  0
  -0.0217373017496258    1  0
  -0.0217319362392591    1  0
  -0.0216782134340947    1  0
  -0.0216650665938761    1  0
  -0.021654790947048     2  0
  -0.0216364021773568    1  0
  -0.0216345715144407    1  0
  -0.0216341901348018    1  0
  -0.021620003102532     1  0
  -0.0216191494948819    1  0
  -0.0216059430250648    1  0
  -0.0215884014714042    1  0
  -0.0215700555568772    1  0
  -0.0215685654412421    1  0
  -0.0215580765793351    1  0
  -0.0215404908078431    1  0
  -0.0215300223399047    1  0
  -0.0214910203115804    1  0
  -0.0214826669633285    1  0
  -0.0214669855089262    1  0
  -0.0214566192227663    1  0
  -0.0214336009554839    1  0
  -0.0214325061516775    1  0
  -0.0214113980099706    4  0
  -0.0214007787095709    1  0
  -0.0213990327446337    1  0
  -0.0213980553575326    1  0
  -0.021367556603288     2  0
  -0.0213442323724122    6  0
  -0.0213229264551787    1  0
  -0.0213134386524598    3  0
  -0.0212749600216997    3  0
  -0.0212503496198531    1  0
  -0.0212304689536969    1  0
  -0.0212286786770626    1  0
  -0.0211914552872506    1  0
  -0.0211738016777809    1  0
  -0.0211616642751544   11  0
  -0.0211498357477296    1  0
  -0.021110184621296     1  0
  -0.0210980180321162    1  0
  -0.0210829760539352    1  0
  -0.0210821507861652    1  0
  -0.0210328708116545    1  0
  -0.021015835150502     1  0
  -0.0209797683935573    1  0
  -0.020972801661221     1  0
  -0.0209702626238475    1  0
  -0.0209478607596005    1  0
  -0.0209187827085518    1  0
  -0.0209107440872294    1  0
  -0.0208813945760002    1  0
  -0.020873591742892     1  0
  -0.0208733609370127    1  0
  -0.0208437574575824    4  0
  -0.0208403673827124    6  0
  -0.0208385697602882    1  0
  -0.0208070506186832    1  0
  -0.020782632745829     1  0
  -0.0207762713277876    1  0
  -0.020772361545287    12  0
  -0.0207292521847826    1  0
 [ reached getOption("max.print") -- omitted 2601 rows ]
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQoNCg0KYGBge3J9DQoNCmRmIDwtIHJlYWQuY3N2KCJDOlxcVXNlcnNcXFV0aWxpc2F0ZXVyXFxEb3dubG9hZHNcXHByZXNlbmNlXzFfMF9wYXJfcGF0Y2guY3N2IiwgaGVhZGVyPVQsIHNlcD0nLCcpDQoNCg0KaGVhZChkZikNCg0KZXNwZWNlcyA9IGRmWywgNTA6bmNvbChkZildDQpoZWFkKGVzcGVjZXMpDQoNCmBgYA0KDQpgYGB7cn0NCmhlYWQoZGYpDQoNCg0KDQpgYGANCg0KDQoNCmBgYHtyfQ0KZGZfYmlvIDwtIGNiaW5kKGRmWywgMTI6MzhdLCBkZlssIGMoNCw1KV0pDQpkZl9iaW8gPC0gZGZbLCAxMTozOF0NCmhlYWQoZGZfYmlvKQ0KYGBgDQoNCmBgYHtyfQ0KbGlicmFyeShGYWN0b01pbmVSKQ0KbGlicmFyeShmYWN0b2V4dHJhKQ0KP1BDQQ0Kc3VwIDwtIGVzcGVjZXNbLCAxXQ0Kc3VwDQphY3BfcmVzdWx0IDwtIFBDQShkZl9iaW8sIHF1YWxpLnN1cCA9IHN1cCkNCmBgYA0KDQoNCg0KYGBge3J9DQphY3AkZWlnDQpgYGANCg0KDQoNCmBgYHtyfQ0KIyBDaGFyZ2VyIGxlcyBwYWNrYWdlcyBuw6ljZXNzYWlyZXMNCmxpYnJhcnkoRmFjdG9NaW5lUikNCmxpYnJhcnkoZTEwNzEpDQoNCiMgU3VwcG9zb25zIHF1ZSB2b3VzIGF2ZXogZMOpasOgIGVmZmVjdHXDqSB1bmUgQUNQDQojIGV0IHN0b2Nrw6kgbGVzIHLDqXN1bHRhdHMgZGFucyB1biBvYmpldCBhcHBlbMOpIGFjcF9yZXN1bHQNCiMgKHBhciBleGVtcGxlLCBhY3BfcmVzdWx0IDwtIFBDQShkZiwgZ3JhcGggPSBGQUxTRSkpDQoNCiMgU8OpbGVjdGlvbm5lciBsZXMgNCBwcmVtacOocmVzIGNvbXBvc2FudGVzIHByaW5jaXBhbGVzDQpjb29yZF9hY3AgPC0gYXMuZGF0YS5mcmFtZShhY3AkaW5kJGNvb3JkWywgMTo0XSkNCg0KIyBBam91dGVyIGxhIHZhcmlhYmxlIGRlIGNsYXNzZQ0KY29vcmRfYWNwJGxhYmVsIDwtIGFzLmZhY3Rvcihlc3BlY2VzWywgMV0pDQoNCg0KDQpsaWJyYXJ5KGNhcmV0KQ0KaW5kaWNlcyA8LSBjcmVhdGVEYXRhUGFydGl0aW9uKGNvb3JkX2FjcCRsYWJlbCwgcCA9IDAuNywgbGlzdCA9IEZBTFNFKQ0KDQp0cmFpbl9kYXRhIDwtIGNvb3JkX2FjcFtpbmRpY2VzLCBdDQp0ZXN0X2RhdGEgPC0gY29vcmRfYWNwWy1pbmRpY2VzLCBdDQoNCg0KIyBDcsOpZXIgbGUgbW9kw6hsZSBTVk0NCnN2bV9tb2RlbCA8LSBzdm0obGFiZWwgfiAuLCBkYXRhID0gY29vcmRfYWNwLCBrZXJuZWwgPSAicmFkaWFsIikNCg0KcHJlZGljdGlvbnMgPC0gcHJlZGljdChzdm1fbW9kZWwsIG5ld2RhdGEgPSB0ZXN0X2RhdGEpDQpjb25mdXNpb25fbWF0cml4IDwtIHRhYmxlKGNsYXNzZV9wcmVkaXRlID0gcHJlZGljdGlvbnMsIGNsYXNzZV9yZWVsbGUgPSB0ZXN0X2RhdGEkbGFiZWwpDQpwcmludChjb25mdXNpb25fbWF0cml4KQ0KDQphY2N1cmFjeSA8LSBzdW0oZGlhZyhjb25mdXNpb25fbWF0cml4KSkgLyBzdW0oY29uZnVzaW9uX21hdHJpeCkNCnByaW50KHBhc3RlKCJBY2N1cmFjeToiLCBhY2N1cmFjeSkpDQoNCmhlYWQoY29vcmRfYWNwKQ0KIA0KDQpgYGANCg0KDQpgYGB7cn0NCm5ld19kYXRhID0gcmVhZC5jc3YoIkM6XFxVc2Vyc1xcVXRpbGlzYXRldXJcXENvdXJzXFxNYXN0ZXJcXFRFUi0yMDIzLTIwMjQtTW9kZWxlcy1kZS1kaXN0cmlidXRpb24tZC1lc3BlY2VzLXByb2ZvbmRzXFxEYXRhXFxEYXRhX3N1Ym1pc3Npb25cXGVudmlyb1RhYl9wYV90ZXN0LmNzdiIsIHNlcD0nOycpDQoNCg0KZGF0YV90ZXN0IDwtIG5ld19kYXRhWywgMTE6MzhdDQpuZXdfZGF0YV9wY2EgPC0gcHJlZGljdChhY3AsIG5ld2RhdGEgPSBkYXRhX3Rlc3QpDQoNCg0KDQpuZXdfZGF0YV9wY2FfZGYgPC0gYXMuZGF0YS5mcmFtZShuZXdfZGF0YV9wY2EpDQpjb29yZG9ubmVlcyA8LSBuZXdfZGF0YV9wY2FfZGZbLCAxOjRdDQpjb2xuYW1lcyhjb29yZG9ubmVlcykgPC0gYygiRGltLjEiLCAiRGltLjIiLCAiRGltLjMiLCAiRGltLjQiKQ0KDQoNCmhlYWQoY29vcmRvbm5lZXMpDQoNCg0KcHJlZGljdGlvbnMgPC0gZGF0YS5mcmFtZSgpDQoNCmZvciAoaSBpbiBzZXFfYWxvbmcoZXNwZWNlcykpIHsNCiAgbGFiZWwgPC0gYXMuZmFjdG9yKGVzcGVjZXNbLCBpXSkNCiAgc3ZtX21vZGVsIDwtIHN2bShsYWJlbCB+IC4sIGRhdGEgPSBjb29yZF9hY3AsIGtlcm5lbCA9ICJyYWRpYWwiKQ0KICBuZXdfcHJlZGljdGlvbnMgPC0gcHJlZGljdChzdm1fbW9kZWwsIG5ld2RhdGEgPSBjb29yZG9ubmVlcykNCiAgY29sX25hbWUgPC0gcGFzdGUoIlByZWRpY3Rpb25zXyIsIGNvbG5hbWVzKGVzcGVjZXMpW2ldLCBzZXAgPSAiIikNCiAgcHJlZGljdGlvbnNbY29sX25hbWVdIDwtIG5ld19wcmVkaWN0aW9ucw0KfQ0KDQojICdwcmVkaWN0aW9ucycgZXN0IG1haW50ZW5hbnQgdW4gZGF0YWZyYW1lIGF2ZWMgZGVzIGNvbG9ubmVzIHBvdXIgY2hhcXVlIGVzcMOoY2UNCg0KDQoNCg0KbmV3X3ByZWRpY3Rpb25zIDwtIHByZWRpY3Qoc3ZtX21vZGVsLCBuZXdkYXRhID0gY29vcmRvbm5lZXMpDQpzdW1tYXJ5KHN2bV9tb2RlbCkNCg0KDQojbmV3X3ByZWRpY3Rpb25zDQojY29vcmRfYWNwJGxhYmVsDQoNCmNvbmZ1c2lvbl9tYXRyaXggPC0gdGFibGUobmV3X3ByZWRpY3Rpb25zLCBjb29yZF9hY3AkbGFiZWwpDQpwcmludChjb25mdXNpb25fbWF0cml4KQ0KDQo/cHJlZGljdA0KDQpoZWFkKG5ld19kYXRhX3BjYV9kZikNCg0KYGBgDQoNCg0KDQoNCg0KYGBge3J9DQoNCg0KIyBJbnN0YWxsZXIgbGUgcGFja2FnZSBzaSBjZSBuJ2VzdCBwYXMgZMOpasOgIGZhaXQNCiMgaW5zdGFsbC5wYWNrYWdlcygiY2FyZXQiKQ0KDQojIENoYXJnZXIgbGUgcGFja2FnZQ0KbGlicmFyeShjYXJldCkNCg0KIyBTdXBwb3NvbnMgcXVlIHZvdHJlIGRhdGFmcmFtZSBlc3QgZGYgZXQgcXVlIHZvdHJlIHZhcmlhYmxlIGRlIGNsYXNzZSBlc3QgJ2xhYmVsJw0KIyBBc3N1cmV6LXZvdXMgcXVlICdsYWJlbCcgZXN0IHVuZSB2YXJpYWJsZSBkZSB0eXBlIGZhY3Rvcg0KDQojIENyw6llciB1bmUgcGFydGl0aW9uIGRlcyBpbmRpY2VzIHBvdXIgbCdlbnNlbWJsZSBkJ2VudHJhw65uZW1lbnQgKDcwJSkgZXQgbCdlbnNlbWJsZSBkZSB0ZXN0ICgzMCUpDQpzZXQuc2VlZCgxMjMpICAjIFBvdXIgbGEgcmVwcm9kdWN0aWJpbGl0w6kgZGVzIHLDqXN1bHRhdHMNCmluZGljZXMgPC0gY3JlYXRlRGF0YVBhcnRpdGlvbihkZiRsYWJlbCwgcCA9IDAuNywgbGlzdCA9IEZBTFNFKQ0KDQojIENyw6llciBsZXMgZW5zZW1ibGVzIGQnZW50cmHDrm5lbWVudCBldCBkZSB0ZXN0DQp0cmFpbl9kYXRhIDwtIGRmW2luZGljZXMsIF0NCnRlc3RfZGF0YSA8LSBkZlstaW5kaWNlcywgXQ0KDQoNCmBgYA0KDQoNCg0K